﻿using System;
using System.Collections.Generic;
using System.Text;

namespace ArgusLib.FFmpeg.avcodec
{
	/// <summary>
	/// Identify the syntax and semantics of the bitstream.
	/// The principle is roughly:
	/// Two decoders with the same ID can decode the same streams.
	/// Two encoders with the same ID can encode compatible streams.
	/// There may be slight deviations from the principle due to implementation
	/// details.
	///
	/// If you add a codec ID to this list, add it so that
	/// 1. no value of a existing codec ID changes (that would break ABI),
	/// 2. Give it a value which when taken as ASCII is recognized uniquely by a human as this specific codec.
	///    This ensures that 2 forks can independently add AVCodecIDs without producing conflicts.
	///    
	/// After adding new codec IDs, do not forget to add an entry to the codec
	/// descriptor list and bump libavcodec minor version.
	/// </summary>
	public enum AVCodecID : int
	{
		AV_CODEC_ID_NONE,

		#region video codecs
		AV_CODEC_ID_MPEG1VIDEO,
		/// <summary>
		/// preferred ID for MPEG-1/2 video decoding
		/// </summary>
		AV_CODEC_ID_MPEG2VIDEO,
		AV_CODEC_ID_MPEG2VIDEO_XVMC,
		AV_CODEC_ID_H261,
		AV_CODEC_ID_H263,
		AV_CODEC_ID_RV10,
		AV_CODEC_ID_RV20,
		AV_CODEC_ID_MJPEG,
		AV_CODEC_ID_MJPEGB,
		AV_CODEC_ID_LJPEG,
		AV_CODEC_ID_SP5X,
		AV_CODEC_ID_JPEGLS,
		AV_CODEC_ID_MPEG4,
		AV_CODEC_ID_RAWVIDEO,
		AV_CODEC_ID_MSMPEG4V1,
		AV_CODEC_ID_MSMPEG4V2,
		AV_CODEC_ID_MSMPEG4V3,
		AV_CODEC_ID_WMV1,
		AV_CODEC_ID_WMV2,
		AV_CODEC_ID_H263P,
		AV_CODEC_ID_H263I,
		AV_CODEC_ID_FLV1,
		AV_CODEC_ID_SVQ1,
		AV_CODEC_ID_SVQ3,
		AV_CODEC_ID_DVVIDEO,
		AV_CODEC_ID_HUFFYUV,
		AV_CODEC_ID_CYUV,
		AV_CODEC_ID_H264,
		AV_CODEC_ID_INDEO3,
		AV_CODEC_ID_VP3,
		AV_CODEC_ID_THEORA,
		AV_CODEC_ID_ASV1,
		AV_CODEC_ID_ASV2,
		AV_CODEC_ID_FFV1,
		AV_CODEC_ID_4XM,
		AV_CODEC_ID_VCR1,
		AV_CODEC_ID_CLJR,
		AV_CODEC_ID_MDEC,
		AV_CODEC_ID_ROQ,
		AV_CODEC_ID_INTERPLAY_VIDEO,
		AV_CODEC_ID_XAN_WC3,
		AV_CODEC_ID_XAN_WC4,
		AV_CODEC_ID_RPZA,
		AV_CODEC_ID_CINEPAK,
		AV_CODEC_ID_WS_VQA,
		AV_CODEC_ID_MSRLE,
		AV_CODEC_ID_MSVIDEO1,
		AV_CODEC_ID_IDCIN,
		AV_CODEC_ID_8BPS,
		AV_CODEC_ID_SMC,
		AV_CODEC_ID_FLIC,
		AV_CODEC_ID_TRUEMOTION1,
		AV_CODEC_ID_VMDVIDEO,
		AV_CODEC_ID_MSZH,
		AV_CODEC_ID_ZLIB,
		AV_CODEC_ID_QTRLE,
		AV_CODEC_ID_TSCC,
		AV_CODEC_ID_ULTI,
		AV_CODEC_ID_QDRAW,
		AV_CODEC_ID_VIXL,
		AV_CODEC_ID_QPEG,
		AV_CODEC_ID_PNG,
		AV_CODEC_ID_PPM,
		AV_CODEC_ID_PBM,
		AV_CODEC_ID_PGM,
		AV_CODEC_ID_PGMYUV,
		AV_CODEC_ID_PAM,
		AV_CODEC_ID_FFVHUFF,
		AV_CODEC_ID_RV30,
		AV_CODEC_ID_RV40,
		AV_CODEC_ID_VC1,
		AV_CODEC_ID_WMV3,
		AV_CODEC_ID_LOCO,
		AV_CODEC_ID_WNV1,
		AV_CODEC_ID_AASC,
		AV_CODEC_ID_INDEO2,
		AV_CODEC_ID_FRAPS,
		AV_CODEC_ID_TRUEMOTION2,
		AV_CODEC_ID_BMP,
		AV_CODEC_ID_CSCD,
		AV_CODEC_ID_MMVIDEO,
		AV_CODEC_ID_ZMBV,
		AV_CODEC_ID_AVS,
		AV_CODEC_ID_SMACKVIDEO,
		AV_CODEC_ID_NUV,
		AV_CODEC_ID_KMVC,
		AV_CODEC_ID_FLASHSV,
		AV_CODEC_ID_CAVS,
		AV_CODEC_ID_JPEG2000,
		AV_CODEC_ID_VMNC,
		AV_CODEC_ID_VP5,
		AV_CODEC_ID_VP6,
		AV_CODEC_ID_VP6F,
		AV_CODEC_ID_TARGA,
		AV_CODEC_ID_DSICINVIDEO,
		AV_CODEC_ID_TIERTEXSEQVIDEO,
		AV_CODEC_ID_TIFF,
		AV_CODEC_ID_GIF,
		AV_CODEC_ID_DXA,
		AV_CODEC_ID_DNXHD,
		AV_CODEC_ID_THP,
		AV_CODEC_ID_SGI,
		AV_CODEC_ID_C93,
		AV_CODEC_ID_BETHSOFTVID,
		AV_CODEC_ID_PTX,
		AV_CODEC_ID_TXD,
		AV_CODEC_ID_VP6A,
		AV_CODEC_ID_AMV,
		AV_CODEC_ID_VB,
		AV_CODEC_ID_PCX,
		AV_CODEC_ID_SUNRAST,
		AV_CODEC_ID_INDEO4,
		AV_CODEC_ID_INDEO5,
		AV_CODEC_ID_MIMIC,
		AV_CODEC_ID_RL2,
		AV_CODEC_ID_ESCAPE124,
		AV_CODEC_ID_DIRAC,
		AV_CODEC_ID_BFI,
		AV_CODEC_ID_CMV,
		AV_CODEC_ID_MOTIONPIXELS,
		AV_CODEC_ID_TGV,
		AV_CODEC_ID_TGQ,
		AV_CODEC_ID_TQI,
		AV_CODEC_ID_AURA,
		AV_CODEC_ID_AURA2,
		AV_CODEC_ID_V210X,
		AV_CODEC_ID_TMV,
		AV_CODEC_ID_V210,
		AV_CODEC_ID_DPX,
		AV_CODEC_ID_MAD,
		AV_CODEC_ID_FRWU,
		AV_CODEC_ID_FLASHSV2,
		AV_CODEC_ID_CDGRAPHICS,
		AV_CODEC_ID_R210,
		AV_CODEC_ID_ANM,
		AV_CODEC_ID_BINKVIDEO,
		AV_CODEC_ID_IFF_ILBM,
		AV_CODEC_ID_IFF_BYTERUN1,
		AV_CODEC_ID_KGV1,
		AV_CODEC_ID_YOP,
		AV_CODEC_ID_VP8,
		AV_CODEC_ID_PICTOR,
		AV_CODEC_ID_ANSI,
		AV_CODEC_ID_A64_MULTI,
		AV_CODEC_ID_A64_MULTI5,
		AV_CODEC_ID_R10K,
		AV_CODEC_ID_MXPEG,
		AV_CODEC_ID_LAGARITH,
		AV_CODEC_ID_PRORES,
		AV_CODEC_ID_JV,
		AV_CODEC_ID_DFA,
		AV_CODEC_ID_WMV3IMAGE,
		AV_CODEC_ID_VC1IMAGE,
		AV_CODEC_ID_UTVIDEO,
		AV_CODEC_ID_BMV_VIDEO,
		AV_CODEC_ID_VBLE,
		AV_CODEC_ID_DXTORY,
		AV_CODEC_ID_V410,
		AV_CODEC_ID_XWD,
		AV_CODEC_ID_CDXL,
		AV_CODEC_ID_XBM,
		AV_CODEC_ID_ZEROCODEC,
		AV_CODEC_ID_MSS1,
		AV_CODEC_ID_MSA1,
		AV_CODEC_ID_TSCC2,
		AV_CODEC_ID_MTS2,
		AV_CODEC_ID_CLLC,
		AV_CODEC_ID_MSS2,
		AV_CODEC_ID_VP9,
		AV_CODEC_ID_AIC,
		AV_CODEC_ID_ESCAPE130_DEPRECATED,
		AV_CODEC_ID_G2M_DEPRECATED,
		AV_CODEC_ID_WEBP_DEPRECATED,

		//AV_CODEC_ID_BRENDER_PIX = Interop.Macros.MKBETAG('B', 'P', 'I', 'X'),
		//AV_CODEC_ID_Y41P = Interop.Macros.MKBETAG('Y', '4', '1', 'P'),
		//AV_CODEC_ID_ESCAPE130 = Interop.Macros.MKBETAG('E', '1', '3', '0'),
		//AV_CODEC_ID_EXR = Interop.Macros.MKBETAG('0', 'E', 'X', 'R'),
		//AV_CODEC_ID_AVRP = Interop.Macros.MKBETAG('A', 'V', 'R', 'P'),

		//AV_CODEC_ID_012V = Interop.Macros.MKBETAG('0', '1', '2', 'V'),
		//AV_CODEC_ID_G2M = Interop.Macros.MKBETAG((char)0, 'G', '2', 'M'),
		//AV_CODEC_ID_AVUI = Interop.Macros.MKBETAG('A', 'V', 'U', 'I'),
		//AV_CODEC_ID_AYUV = Interop.Macros.MKBETAG('A', 'Y', 'U', 'V'),
		//AV_CODEC_ID_TARGA_Y216 = Interop.Macros.MKBETAG('T', '2', '1', '6'),
		//AV_CODEC_ID_V308 = Interop.Macros.MKBETAG('V', '3', '0', '8'),
		//AV_CODEC_ID_V408 = Interop.Macros.MKBETAG('V', '4', '0', '8'),
		//AV_CODEC_ID_YUV4 = Interop.Macros.MKBETAG('Y', 'U', 'V', '4'),
		//AV_CODEC_ID_SANM = Interop.Macros.MKBETAG('S', 'A', 'N', 'M'),
		//AV_CODEC_ID_PAF_VIDEO = Interop.Macros.MKBETAG('P', 'A', 'F', 'V'),
		//AV_CODEC_ID_AVRN = Interop.Macros.MKBETAG('A', 'V', 'R', 'n'),
		//AV_CODEC_ID_CPIA = Interop.Macros.MKBETAG('C', 'P', 'I', 'A'),
		//AV_CODEC_ID_XFACE = Interop.Macros.MKBETAG('X', 'F', 'A', 'C'),
		//AV_CODEC_ID_SGIRLE = Interop.Macros.MKBETAG('S', 'G', 'I', 'R'),
		//AV_CODEC_ID_MVC1 = Interop.Macros.MKBETAG('M', 'V', 'C', '1'),
		//AV_CODEC_ID_MVC2 = Interop.Macros.MKBETAG('M', 'V', 'C', '2'),
		//AV_CODEC_ID_SNOW = Interop.Macros.MKBETAG('S', 'N', 'O', 'W'),
		//AV_CODEC_ID_WEBP = Interop.Macros.MKBETAG('W', 'E', 'B', 'P'),
		//AV_CODEC_ID_SMVJPEG = Interop.Macros.MKBETAG('S', 'M', 'V', 'J'),
		//AV_CODEC_ID_H265 = Interop.Macros.MKBETAG('H', '2', '6', '5'),
		#endregion

		#region various PCM "codecs"
		/// <summary>
		/// A dummy id pointing at the start of audio codecs
		/// </summary>
		AV_CODEC_ID_FIRST_AUDIO = 0x10000,
		AV_CODEC_ID_PCM_S16LE = 0x10000,
		AV_CODEC_ID_PCM_S16BE,
		AV_CODEC_ID_PCM_U16LE,
		AV_CODEC_ID_PCM_U16BE,
		AV_CODEC_ID_PCM_S8,
		AV_CODEC_ID_PCM_U8,
		AV_CODEC_ID_PCM_MULAW,
		AV_CODEC_ID_PCM_ALAW,
		AV_CODEC_ID_PCM_S32LE,
		AV_CODEC_ID_PCM_S32BE,
		AV_CODEC_ID_PCM_U32LE,
		AV_CODEC_ID_PCM_U32BE,
		AV_CODEC_ID_PCM_S24LE,
		AV_CODEC_ID_PCM_S24BE,
		AV_CODEC_ID_PCM_U24LE,
		AV_CODEC_ID_PCM_U24BE,
		AV_CODEC_ID_PCM_S24DAUD,
		AV_CODEC_ID_PCM_ZORK,
		AV_CODEC_ID_PCM_S16LE_PLANAR,
		AV_CODEC_ID_PCM_DVD,
		AV_CODEC_ID_PCM_F32BE,
		AV_CODEC_ID_PCM_F32LE,
		AV_CODEC_ID_PCM_F64BE,
		AV_CODEC_ID_PCM_F64LE,
		AV_CODEC_ID_PCM_BLURAY,
		AV_CODEC_ID_PCM_LXF,
		AV_CODEC_ID_S302M,
		AV_CODEC_ID_PCM_S8_PLANAR,
		//AV_CODEC_ID_PCM_S24LE_PLANAR = Interop.Macros.MKBETAG((char)24, 'P', 'S', 'P'),
		//AV_CODEC_ID_PCM_S32LE_PLANAR = Interop.Macros.MKBETAG((char)32, 'P', 'S', 'P'),
		//AV_CODEC_ID_PCM_S16BE_PLANAR = Interop.Macros.MKBETAG('P', 'S', 'P', (char)16),
		#endregion

		#region various ADPCM codecs
		AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
		AV_CODEC_ID_ADPCM_IMA_WAV,
		AV_CODEC_ID_ADPCM_IMA_DK3,
		AV_CODEC_ID_ADPCM_IMA_DK4,
		AV_CODEC_ID_ADPCM_IMA_WS,
		AV_CODEC_ID_ADPCM_IMA_SMJPEG,
		AV_CODEC_ID_ADPCM_MS,
		AV_CODEC_ID_ADPCM_4XM,
		AV_CODEC_ID_ADPCM_XA,
		AV_CODEC_ID_ADPCM_ADX,
		AV_CODEC_ID_ADPCM_EA,
		AV_CODEC_ID_ADPCM_G726,
		AV_CODEC_ID_ADPCM_CT,
		AV_CODEC_ID_ADPCM_SWF,
		AV_CODEC_ID_ADPCM_YAMAHA,
		AV_CODEC_ID_ADPCM_SBPRO_4,
		AV_CODEC_ID_ADPCM_SBPRO_3,
		AV_CODEC_ID_ADPCM_SBPRO_2,
		AV_CODEC_ID_ADPCM_THP,
		AV_CODEC_ID_ADPCM_IMA_AMV,
		AV_CODEC_ID_ADPCM_EA_R1,
		AV_CODEC_ID_ADPCM_EA_R3,
		AV_CODEC_ID_ADPCM_EA_R2,
		AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
		AV_CODEC_ID_ADPCM_IMA_EA_EACS,
		AV_CODEC_ID_ADPCM_EA_XAS,
		AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
		AV_CODEC_ID_ADPCM_IMA_ISS,
		AV_CODEC_ID_ADPCM_G722,
		AV_CODEC_ID_ADPCM_IMA_APC,
		//AV_CODEC_ID_VIMA = Interop.Macros.MKBETAG('V', 'I', 'M', 'A'),
		//AV_CODEC_ID_ADPCM_AFC = Interop.Macros.MKBETAG('A', 'F', 'C', ' '),
		//AV_CODEC_ID_ADPCM_IMA_OKI = Interop.Macros.MKBETAG('O', 'K', 'I', ' '),
		//AV_CODEC_ID_ADPCM_DTK = Interop.Macros.MKBETAG('D', 'T', 'K', ' '),
		//AV_CODEC_ID_ADPCM_IMA_RAD = Interop.Macros.MKBETAG('R', 'A', 'D', ' '),
		#endregion

		#region AMR
		AV_CODEC_ID_AMR_NB = 0x12000,
		AV_CODEC_ID_AMR_WB,
		#endregion

		#region RealAudio codecs
		AV_CODEC_ID_RA_144 = 0x13000,
		AV_CODEC_ID_RA_288,
		#endregion

		#region various DPCM codecs
		AV_CODEC_ID_ROQ_DPCM = 0x14000,
		AV_CODEC_ID_INTERPLAY_DPCM,
		AV_CODEC_ID_XAN_DPCM,
		AV_CODEC_ID_SOL_DPCM,
		#endregion

		#region audio codecs
		AV_CODEC_ID_MP2 = 0x15000,
		/// <summary>
		/// preferred ID for decoding MPEG audio layer 1, 2 or 3
		/// </summary>
		AV_CODEC_ID_MP3,
		AV_CODEC_ID_AAC,
		AV_CODEC_ID_AC3,
		AV_CODEC_ID_DTS,
		AV_CODEC_ID_VORBIS,
		AV_CODEC_ID_DVAUDIO,
		AV_CODEC_ID_WMAV1,
		AV_CODEC_ID_WMAV2,
		AV_CODEC_ID_MACE3,
		AV_CODEC_ID_MACE6,
		AV_CODEC_ID_VMDAUDIO,
		AV_CODEC_ID_FLAC,
		AV_CODEC_ID_MP3ADU,
		AV_CODEC_ID_MP3ON4,
		AV_CODEC_ID_SHORTEN,
		AV_CODEC_ID_ALAC,
		AV_CODEC_ID_WESTWOOD_SND1,
		/// <summary>
		/// as in Berlin toast format
		/// </summary>
		AV_CODEC_ID_GSM,
		AV_CODEC_ID_QDM2,
		AV_CODEC_ID_COOK,
		AV_CODEC_ID_TRUESPEECH,
		AV_CODEC_ID_TTA,
		AV_CODEC_ID_SMACKAUDIO,
		AV_CODEC_ID_QCELP,
		AV_CODEC_ID_WAVPACK,
		AV_CODEC_ID_DSICINAUDIO,
		AV_CODEC_ID_IMC,
		AV_CODEC_ID_MUSEPACK7,
		AV_CODEC_ID_MLP,
		/// <summary>
		/// as found in WAV
		/// </summary>
		AV_CODEC_ID_GSM_MS,
		AV_CODEC_ID_ATRAC3,
#if FF_API_VOXWARE
		AV_CODEC_ID_VOXWARE,
#endif
		AV_CODEC_ID_APE,
		AV_CODEC_ID_NELLYMOSER,
		AV_CODEC_ID_MUSEPACK8,
		AV_CODEC_ID_SPEEX,
		AV_CODEC_ID_WMAVOICE,
		AV_CODEC_ID_WMAPRO,
		AV_CODEC_ID_WMALOSSLESS,
		AV_CODEC_ID_ATRAC3P,
		AV_CODEC_ID_EAC3,
		AV_CODEC_ID_SIPR,
		AV_CODEC_ID_MP1,
		AV_CODEC_ID_TWINVQ,
		AV_CODEC_ID_TRUEHD,
		AV_CODEC_ID_MP4ALS,
		AV_CODEC_ID_ATRAC1,
		AV_CODEC_ID_BINKAUDIO_RDFT,
		AV_CODEC_ID_BINKAUDIO_DCT,
		AV_CODEC_ID_AAC_LATM,
		AV_CODEC_ID_QDMC,
		AV_CODEC_ID_CELT,
		AV_CODEC_ID_G723_1,
		AV_CODEC_ID_G729,
		AV_CODEC_ID_8SVX_EXP,
		AV_CODEC_ID_8SVX_FIB,
		AV_CODEC_ID_BMV_AUDIO,
		AV_CODEC_ID_RALF,
		AV_CODEC_ID_IAC,
		AV_CODEC_ID_ILBC,
		AV_CODEC_ID_OPUS_DEPRECATED,
		AV_CODEC_ID_COMFORT_NOISE,
		AV_CODEC_ID_TAK_DEPRECATED,
		AV_CODEC_ID_METASOUND,
		//AV_CODEC_ID_FFWAVESYNTH = Interop.Macros.MKBETAG('F', 'F', 'W', 'S'),
		//AV_CODEC_ID_SONIC = Interop.Macros.MKBETAG('S', 'O', 'N', 'C'),
		//AV_CODEC_ID_SONIC_LS = Interop.Macros.MKBETAG('S', 'O', 'N', 'L'),
		//AV_CODEC_ID_PAF_AUDIO = Interop.Macros.MKBETAG('P', 'A', 'F', 'A'),
		//AV_CODEC_ID_OPUS = Interop.Macros.MKBETAG('O', 'P', 'U', 'S'),
		//AV_CODEC_ID_TAK = Interop.Macros.MKBETAG('t', 'B', 'a', 'K'),
		//AV_CODEC_ID_EVRC = Interop.Macros.MKBETAG('s', 'e', 'v', 'c'),
		//AV_CODEC_ID_SMV = Interop.Macros.MKBETAG('s', 's', 'm', 'v'),
		#endregion

		#region subtitle codecs
		/// <summary>
		/// A dummy ID pointing at the start of subtitle codecs.
		/// </summary>
		AV_CODEC_ID_FIRST_SUBTITLE = 0x17000,
		AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
		AV_CODEC_ID_DVB_SUBTITLE,
		/// <summary>
		/// raw UTF-8 text
		/// </summary>
		AV_CODEC_ID_TEXT,
		AV_CODEC_ID_XSUB,
		AV_CODEC_ID_SSA,
		AV_CODEC_ID_MOV_TEXT,
		AV_CODEC_ID_HDMV_PGS_SUBTITLE,
		AV_CODEC_ID_DVB_TELETEXT,
		AV_CODEC_ID_SRT,
		//AV_CODEC_ID_MICRODVD = Interop.Macros.MKBETAG('m', 'D', 'V', 'D'),
		//AV_CODEC_ID_EIA_608 = Interop.Macros.MKBETAG('c', '6', '0', '8'),
		//AV_CODEC_ID_JACOSUB = Interop.Macros.MKBETAG('J', 'S', 'U', 'B'),
		//AV_CODEC_ID_SAMI = Interop.Macros.MKBETAG('S', 'A', 'M', 'I'),
		//AV_CODEC_ID_REALTEXT = Interop.Macros.MKBETAG('R', 'T', 'X', 'T'),
		//AV_CODEC_ID_SUBVIEWER1 = Interop.Macros.MKBETAG('S', 'b', 'V', '1'),
		//AV_CODEC_ID_SUBVIEWER = Interop.Macros.MKBETAG('S', 'u', 'b', 'V'),
		//AV_CODEC_ID_SUBRIP = Interop.Macros.MKBETAG('S', 'R', 'i', 'p'),
		//AV_CODEC_ID_WEBVTT = Interop.Macros.MKBETAG('W', 'V', 'T', 'T'),
		//AV_CODEC_ID_MPL2 = Interop.Macros.MKBETAG('M', 'P', 'L', '2'),
		//AV_CODEC_ID_VPLAYER = Interop.Macros.MKBETAG('V', 'P', 'l', 'r'),
		//AV_CODEC_ID_PJS = Interop.Macros.MKBETAG('P', 'h', 'J', 'S'),
		///// <summary>
		///// ASS as defined in Matroska
		///// </summary>
		//AV_CODEC_ID_ASS = Interop.Macros.MKBETAG('A', 'S', 'S', ' '),
		#endregion

		#region other specific kind of codecs (generally used for attachments)
		/// <summary>
		/// A dummy ID pointing at the start of various fake codecs.
		/// </summary>
		AV_CODEC_ID_FIRST_UNKNOWN = 0x18000,
		AV_CODEC_ID_TTF = 0x18000,
		//AV_CODEC_ID_BINTEXT = Interop.Macros.MKBETAG('B', 'T', 'X', 'T'),
		//AV_CODEC_ID_XBIN = Interop.Macros.MKBETAG('X', 'B', 'I', 'N'),
		//AV_CODEC_ID_IDF = Interop.Macros.MKBETAG((char)0, 'I', 'D', 'F'),
		//AV_CODEC_ID_OTF = Interop.Macros.MKBETAG((char)0, 'O', 'T', 'F'),
		//AV_CODEC_ID_SMPTE_KLV = Interop.Macros.MKBETAG('K', 'L', 'V', 'A'),
		//AV_CODEC_ID_DVD_NAV = Interop.Macros.MKBETAG('D', 'N', 'A', 'V'),
		#endregion

		/// <summary>
		/// codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
		/// </summary>
		AV_CODEC_ID_PROBE = 0x19000,

		/// <summary>
		/// _FAKE_ codec to indicate a raw MPEG-2 TS stream (only used by libavformat)
		/// </summary>
		AV_CODEC_ID_MPEG2TS = 0x20000,

		/// <summary>
		/// _FAKE_ codec to indicate a MPEG-4 Systems stream (only used by libavformat)
		/// </summary>
		AV_CODEC_ID_MPEG4SYSTEMS = 0x20001,

		/// <summary>
		/// Dummy codec for streams containing only metadata information.
		/// </summary>
		AV_CODEC_ID_FFMETADATA = 0x21000,
	}
}
